package tec;


public class Greffon implements Transport, Bus{
    private Bus bus;
    private Collecte collecte;

    public Greffon (int nbPlaceAssise, int nbPlaceDebout, Collecte collecte) {
	bus = new Autobus(nbPlaceAssise, nbPlaceDebout);
	this.collecte = collecte;
    }

    public void demanderPlaceAssise(Passager p) {
	if(p.estDehors()){
	    bus.demanderPlaceAssise(p);
	    if (p.estAssis())
		collecte.uneEntree();
	}
    }

    public void demanderPlaceDebout(Passager p) {
	if(p.estDehors()){
	    bus.demanderPlaceDebout(p);
	    if (p.estDebout())
		collecte.uneEntree();
	}
    }


    public void demanderSortie(Passager p) {
	if (p.estDehors())
	    collecte.uneSortie();
    }

    public void demanderChangerEnAssis(Passager p) {
	bus.demanderChangerEnAssis(p);
    }
    
    public void demanderChangerEnDebout(Passager p) {
	bus.demanderChangerEnDebout(p);
    }
  
    public boolean aPlaceAssise(){
	return bus.aPlaceAssise();
    }

    public boolean aPlaceDebout(){
	return bus.aPlaceDebout();
    }

    public void allerArretSuivant(final Bus bus) throws TecInvalidException { }

    public void allerArretSuivant() throws TecInvalidException {
	bus.allerArretSuivant(this);
	collecte.changerArret();
	
    }

    @Override
	public String toString(){
	return bus.toString();
    }

}